home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / emerald / emrldsys.lha / Language / Compiler / names.c < prev    next >
C/C++ Source or Header  |  1990-08-16  |  823b  |  30 lines

  1. /*
  2.  * @(#)names.c    1.2  3/18/87
  3.  */
  4. #include "assert.h"
  5. #include "nodes.h"
  6. #include "system.h"
  7. #include "error.h"
  8. #include "ident.h"
  9.  
  10. Boolean Names_Check(n1, n2)
  11. NodePtr n1, n2;
  12. {
  13.   if (n1 == NULL) {
  14.     if (n2 != NULL) {
  15.       WarningMessage(n2, "No opening identifier matching \"%s\"",
  16.        Ident_Name(n2->b.symdef.ident));
  17.     }
  18.   } else if (n2 == NULL) {
  19.     WarningMessage(n1, "No closing identifier matching \"%s\"",
  20.       Ident_Name(n1->b.symdef.ident));
  21.   } else /* neither n1 nor n2 are null */ {
  22.     assert(n1->tag == P_SYMDEF || n1->tag == P_OPNAME);
  23.     assert(n2->tag == P_SYMREF  || n2->tag == P_OPNAME);
  24.     if (n1->b.symdef.ident != n2->b.symref.ident) {
  25.       WarningMessage(n2, "Identifier mismatch, \"%s\" should be \"%s\"",
  26.     Ident_Name(n2->b.symref.ident), Ident_Name(n1->b.symdef.ident));
  27.     }
  28.   }
  29. }
  30.